#include "mgraph.h"
#include <QDebug>
MGraph::MGraph(QWidget *parent,int num,int way):Graph(parent,num)
{
    model=new MModel(num);
    switch(way) //根据way值选择点输入方式
    {
        case 0: //手动输入

        break;
        case 1: //自动生成
            getRandomMap();
        break;
        case 2: //选择文件
            loadGraphFromFile();
        break;
    }
    renderPaint();
}

void MGraph::putArrow()
{
    for(int i=0;i<num;i++)
    {
        for(int j=0;j<num;j++)
        {
            if(((MModel *)model)->matrix[i][j]!=INF)
            arrowList.push_back(Arrow(i,j,((MModel *)model)->matrix[i][j],Qt::yellow));
        }
    }
}

void MGraph::saveModel()
{
    history.push(model);
    model=new MModel(*((MModel*)model));
}

void MGraph::saveEdge(QTextStream &out)
{
    for(int i=0;i<num;i++)  //依次保存边
    {
        for(int j=0;j<num;j++)
        {
            if(((MModel *)model)->matrix[i][j]!=INF)    //如果ij之间存在边
                out<<i<<"\t"<<j<<endl;  //表示i j之间存在边

        }
    }
    //qDebug()<<"保存边信息";
}

MGraph::~MGraph()
{
    delete model;
}
